package ch.unizh.ifi.ailab.utils;

import java.io.File;

import javax.media.MediaLocator;

import ch.unizh.ifi.ailab.dataTypes.Vector2D;


/**
 * @author hans jaeckle jaeckle@gmail.com
 * 
 */
public class Utils {

	/**
	 * erstellt aus zwei teilpfaden einen gesamtpfad.
	 * 
	 * @param mainPath
	 *            enthlt den hahuptpfad
	 * @param subPath
	 *            enthlt den unterpfad
	 * @return gibt den zusammengesetzten pfad zurck
	 */
	public static String path(String mainPath, String subPath) {
		StringBuffer path = new StringBuffer();
		path.append(mainPath);
		if (mainPath != null) {
			if (!mainPath.endsWith(System.getProperty("file.separator"))) {
				path.append(System.getProperty("file.separator"));
			}
		}
		if (subPath != null) {
			if (subPath.startsWith(System.getProperty("file.separator"))) {
				path.append(subPath.substring(1));
			} else {
				path.append(subPath);
			}
		}

		return path.toString();
	}

	/**
	 * erstellt aus zwei vekoren die summe
	 * 
	 * @param vecA
	 *            der eine vektor
	 * @param vecB
	 *            der andere vektor
	 * @return einen vektor mit der summe der beiden anderen.
	 */
	public static Vector2D add(Vector2D vecA,
			Vector2D vecB) {
		Vector2D result = new Vector2D(vecA);
		result.plus(vecB);
		return result;
	}


	/**
	 * Create a media locator from the given string.
	 */
	public static MediaLocator createMediaLocator(String url) {

		MediaLocator ml;

		if (url.indexOf(":") > 0 && (ml = new MediaLocator(url)) != null)
			return ml;

		if (url.startsWith(File.separator)) {
			if ((ml = new MediaLocator("file:" + url)) != null)
				return ml;
		} else {
			String file = "file:" + System.getProperty("user.dir")
					+ File.separator + url;
			if ((ml = new MediaLocator(file)) != null)
				return ml;
		}

		return null;
	}

}
